﻿using System;
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Infrastructure.ExternalService.Core.Responses
{
    public class ProductResponse
    {
        /// <summary>
        /// 产品Id:班型Id
        /// </summary>
        public string ClasstypeId { get; set; }
        /// <summary>
        /// 班型名称
        /// </summary>
        public string ClasstypeName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ClassId { get; set; }
        public char? ClasstypeDataStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ClassName { get; set; }
        /// <summary>
        /// 班级最低折扣
        /// </summary>
        public decimal? ClassDiscount { get; set; }
        /// <summary>
        /// 班级推荐折扣
        /// </summary>
        public decimal? ClassAdviseDiscount { get; set; }
        /// <summary>
        /// 班型原价
        /// </summary>
        public long? ClassStdPrice { get; set; }
        /// <summary>
        /// 项目Id
        /// </summary>
        public string ProjectId { get; set; }
        /// <summary>
        /// 班级类别：M-全科、S-单科
        /// </summary>
        public string ClassCategory { get; set; }
        /// <summary>
        /// 项目年份周期标识
        /// </summary>
        public string PypId { get; set; }
        /// <summary>
        /// 班型年份
        /// </summary>
        public int? ClassYear { get; set; }
        /// <summary>
        /// 周期序号
        /// </summary>
        [JsonProperty("pypSeq")]
        public int? ClassPeriodSeq { get; set; }
        /// <summary>
        /// 授课方式
        /// </summary>
        public string ClassTeachMethod { get; set; }
        /// <summary>
        /// 服务结束时间
        /// </summary>
        public DateTime ClassExpireDate { get; set; }
        /// <summary>
        /// 班级合计资料费
        /// </summary>
        public long? ClassBookAmount { get; set; }
        /// <summary>
        /// 班级是否包含资料
        /// </summary>
        public char? ClassGoodsStatus { get; set; }
        /// <summary>
        /// 是否邮寄资料(Y:是;N:否;)
        /// </summary>
        public char? ClassSendStatus { get; set; }
        /// <summary>
        /// 科目Id
        /// </summary>
        public string SubjectId { get; set; }
        /// <summary>
        /// 科目名称
        /// </summary>
        public string SubjectName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public char? SubjectNature { get; set; }
        /// <summary>
        /// 如果是全科班：此为全科包含的子科目
        /// </summary>
        public List<SubjectRes> Subjects { get; set; }

        #region 班级服务承诺相关信息
        [JsonProperty("classAtype")]
        public string AgreementType { get; set; }
        /// <summary>
        /// 服务类型:重读、退费、不退费不重读
        /// </summary>
        [JsonProperty("classAsertype")]
        public string ServiceType { get; set; }
        /// <summary>
        /// 协议重读次数
        /// </summary>
        [JsonProperty("classArepeatcount")]
        public int? RepeatCount { get; set; }
        /// <summary>
        /// 重读资料费
        /// </summary>
        [JsonProperty("classArepeatbookamount")]
        public long? RepeatBookAmount { get; set; }
        /// <summary>
        /// 退费形式:全额退费;扣除资料费退费;每科按固定金额退费;每科按固定比例退费
        /// </summary>
        [JsonProperty("classArefundtype")]
        public string RefundType { get; set; }
        /// <summary>
        /// 退费量值：百分比或金额
        /// </summary>
        [JsonProperty("classARefundamount")]
        public long? RefundAmount { get; set; }
        /// <summary>
        /// 班级协议地址
        /// </summary>
        public string AgreementUrl { get; set; }
        #endregion
        /// <summary>
        /// 
        /// </summary>
        public List<GoodsRes> Goods { get; set; }

        /// <summary>
        /// 班级赠送状态
        /// </summary>
        public string ClassGiveStatus { get; set; }

        /// <summary>
        /// 班级学习卡状态
        /// </summary>
        public string ClassLearnCardStatus { get; set; }

        /// <summary>
        /// 班级内部学习状态
        /// </summary>
        public string ClassInnerLearnStatus { get; set; }


        /// <summary>
        /// 班级引流状态
        /// </summary>
        public string ClassDrainageStatus { get; set; }

        /// <summary>
        /// 班级企业定制状态
        /// </summary>
        public string ClassEnterpriseStatus { get; set; }
    }
}
